package com.sunyur.tailor.channel.service.inner.budget.param;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
 * @ClassName BudgetAuditParam
 * @Description 预算编制结果接口参数
 * @Author pengbing
 * @Date 2021/2/22
 * @Version v1.0
 */
@Data
public class BudgetAuditParam implements Serializable {

  private static final long serialVersionUID = 2936416317276980593L;
  /**
   * 预算名称
   */
  private String budgetName;
  /**
   * 外部预算唯一code，用于判断预算项重复的唯一编号，如果没有，那么请传入公司主体编码+项目编号，中间不能有空格和特殊符号。不可变化。必填，唯一
   */
  private String budgetOutsideCode;
  /**
   *
   */
  private Integer status;
  /**
   * 预算金额单位，0：元，1：美元，默认为人民币元
   */
  private Integer budgetUnit;
  /**
   * 预算单元外部编码/员工工号 部门预算，项目预算传预算单元外部编码 个人预算传员工工号
   */
  private String businessCode;
  /**
   * 预算单元外部名称/员工姓名 部门预算，项目预算传预算单元外部名称 个人预算传员工姓名
   */
  private String businessName;
  /**
   * 扣减方式，0:按科目金额扣减 1: 按预算号总金额扣减
   */
  private Integer deductType;
  /**
   * 预算期间（预算截止时间）
   */
  private Long endTime;
  /**
   * 预算期间（预算起始时间）
   */
  private Long startTime;
  /**
   *
   */
  private String preStartTime;
  /**
   *
   */
  private String preEndTime;
  /**
   * 预算类型编码
   */
  private String budgetTypeCode;
  /**
   *
   */
  private List<BudgetAuditingParam> budgetControlDetailParamList;

  @Data
  public class BudgetAuditingParam implements Serializable {

    private static final long serialVersionUID = 2392956249014564953L;
    /**
     * 预算金额
     */
    private BigDecimal budgetAmount;
    /**
     * 行唯一code，不可变化
     */
    private String budgetOutsideCode;
    /**
     * 预算金额单位，0：元，1：美元，默认为人民币元
     */
    private Integer budgetUnit;
    /**
     * 科目编码 需在预算科目主数据维护
     */
    private String budgetSubjectOutsideCode;
    /**
     * 科目名称 需在预算科目主数据维护
     */
    private String budgetSubjectOutsideName;
    /**
     * 预算责任人集合，传递员工工号，最大数量三个
     */
    private List<String> personChargeList;
    /**
     * 是否剔除计算标识 0:不剔除 1:剔除
     */
    private Integer eliminateFlag;


  }

}
